Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


meshchatx/src/frontend/public/service-worker.js master (b89dc9e6) Text, 13.53 KB

T8b949e// SPDX-License-Identifier: 0BSD

T8b949e/* eslint-disable no-restricted-globals */

T8b949e/* Generated MeshChatX service worker. Do not edit by hand. */

T8b949e/** Prefix for versioned Cache Storage buckets. */
Tff7b72const Te6edf3SHELL_CACHE_PREFIX Tff7b72= Ta5d6ff"meshchatx-shell-"Tb4b4b4;

T8b949e/** Default navigation network-first timeout in milliseconds. */
Tff7b72const Te6edf3NAV_NETWORK_TIMEOUT_MS Tff7b72= T79c0ff2000Tb4b4b4;

T8b949e/**
* @param {string} buildId
* @returns {string}
*/
Tff7b72function Te6edf3cacheNameForBuildTb4b4b4(Te6edf3buildIdTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3id Tff7b72= Tffa657StringTb4b4b4(Te6edf3buildId Tff7b72|| Ta5d6ff"dev"Tb4b4b4)Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/[^a-zA-Z0-9._-]/gTb4b4b4, Ta5d6ff"_"Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff`Tffd700${Te6edf3SHELL_CACHE_PREFIXTffd700}Ta5d6ffvTffd700${Te6edf3idTffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {string} pathname
* @returns {boolean}
*/
Tff7b72function Te6edf3isApiPathTb4b4b4(Te6edf3pathnameTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3path Tff7b72= Tffa657StringTb4b4b4(Te6edf3pathname Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3path Tff7b72=== Ta5d6ff"/api" Tff7b72|| Te6edf3pathTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/api/"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* Vite content-hashed build assets under /assets/.
* @param {string} pathname
* @returns {boolean}
*/
Tff7b72function Te6edf3isHashedAssetPathTb4b4b4(Te6edf3pathnameTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3path Tff7b72= Tffa657StringTb4b4b4(Te6edf3pathname Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3path Tff7b72=== Ta5d6ff"/assets" Tff7b72|| Te6edf3pathTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/assets/"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* Static shell helpers that may use stale-while-revalidate.
* @param {string} pathname
* @returns {boolean}
*/
Tff7b72function Te6edf3isShellHelperPathTb4b4b4(Te6edf3pathnameTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3path Tff7b72= Tffa657StringTb4b4b4(Te6edf3pathname Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3path Tff7b72=== Ta5d6ff"/boot-theme.js" Tff7b72|| Te6edf3path Tff7b72=== Ta5d6ff"/manifest.json"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3path Tff7b72=== Ta5d6ff"/favicons" Tff7b72|| Te6edf3pathTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/favicons/"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Ta5d6ff/favicon/iTb4b4b4.Te6edf3testTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Request} request
* @returns {boolean}
*/
Tff7b72function Te6edf3isNavigationRequestTb4b4b4(Te6edf3requestTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3request Tff7b72|| Tff7b72typeof Te6edf3request Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3requestTb4b4b4.Te6edf3mode Tff7b72=== Ta5d6ff"navigate"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3dest Tff7b72= Te6edf3requestTb4b4b4.Te6edf3destinationTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3dest Tff7b72=== Ta5d6ff"document"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3accept Tff7b72= Te6edf3requestTb4b4b4.Te6edf3headersTff7b72?Tb4b4b4.Te6edf3getTff7b72?Tb4b4b4.Tb4b4b4(Ta5d6ff"accept"Tb4b4b4) Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72return Tff7b72typeof Te6edf3accept Tff7b72=== Ta5d6ff"string" Tff7b72&& Te6edf3acceptTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"text/html"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* True when the service worker must not use Cache Storage for this request.
* @param {Request} request
* @param {URL} [url]
* @returns {boolean}
*/
Tff7b72function Te6edf3shouldBypassCacheTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3urlTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3request Tff7b72|| Tb4b4b4(Te6edf3requestTb4b4b4.Te6edf3method Tff7b72!== Ta5d6ff"GET" Tff7b72&& Te6edf3requestTb4b4b4.Te6edf3method Tff7b72!== Ta5d6ff"HEAD"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3pathname Tff7b72= Ta5d6ff"/"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3url Tff7b72&& Tff7b72typeof Te6edf3urlTb4b4b4.Te6edf3pathname Tff7b72=== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Te6edf3pathname Tff7b72= Te6edf3urlTb4b4b4.Te6edf3pathnameTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3requestTb4b4b4.Te6edf3url Tff7b72=== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3pathname Tff7b72= Tff7b72new Te6edf3URLTb4b4b4(Te6edf3requestTb4b4b4.Te6edf3urlTb4b4b4)Tb4b4b4.Te6edf3pathnameTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3isApiPathTb4b4b4(Te6edf3pathnameTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathname Tff7b72=== Ta5d6ff"/ws" Tff7b72|| Te6edf3pathnameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/ws/"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathname Tff7b72=== Ta5d6ff"/service-worker.js"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}

T8b949e/**
* Classify a same-origin GET for shell caching strategy selection.
* @param {Request} request
* @param {URL} url
* @returns {"bypass"|"asset"|"navigation"|"shell-helper"|"network-only"}
*/
Tff7b72function Te6edf3classifyShellRequestTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3urlTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3shouldBypassCacheTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3urlTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"bypass"Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3pathname Tff7b72= Te6edf3urlTb4b4b4.Te6edf3pathnameTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3isHashedAssetPathTb4b4b4(Te6edf3pathnameTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"asset"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3isNavigationRequestTb4b4b4(Te6edf3requestTb4b4b4) Tff7b72|| Te6edf3pathname Tff7b72=== Ta5d6ff"/" Tff7b72|| Te6edf3pathname Tff7b72=== Ta5d6ff"/index.html"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"navigation"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3isShellHelperPathTb4b4b4(Te6edf3pathnameTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"shell-helper"Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff"network-only"Tb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3SHELL_FALLBACK_URL Tff7b72= Ta5d6ff"/"Tb4b4b4;
Tff7b72const Te6edf3UPDATE_MESSAGE_TYPE Tff7b72= Ta5d6ff"meshchatx-sw-updated"Tb4b4b4;

T8b949e/**
* Independent accept/reject oracle for shell caching.
* Predicts strategy from raw inputs without calling classifyShellRequest.
* @param {{ method?: string, pathname?: string, mode?: string, destination?: string, accept?: string }} input
* @returns {"bypass"|"asset"|"navigation"|"shell-helper"|"network-only"}
*/
Tff7b72function Te6edf3oracleExpectedStrategyTb4b4b4(Te6edf3inputTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3method Tff7b72= Te6edf3inputTb4b4b4.Te6edf3method Tff7b72|| Ta5d6ff"GET"Tb4b4b4;
Tff7b72const Te6edf3pathname Tff7b72= Tffa657StringTb4b4b4(Te6edf3inputTb4b4b4.Te6edf3pathname Tff7b72|| Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3method Tff7b72!== Ta5d6ff"GET" Tff7b72&& Te6edf3method Tff7b72!== Ta5d6ff"HEAD"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"bypass"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathname Tff7b72=== Ta5d6ff"/api" Tff7b72|| Te6edf3pathnameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/api/"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"bypass"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathname Tff7b72=== Ta5d6ff"/ws" Tff7b72|| Te6edf3pathnameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/ws/"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"bypass"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathname Tff7b72=== Ta5d6ff"/service-worker.js"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"bypass"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathname Tff7b72=== Ta5d6ff"/assets" Tff7b72|| Te6edf3pathnameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/assets/"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"asset"Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3navigate Tff7b72=
Te6edf3inputTb4b4b4.Te6edf3mode Tff7b72=== Ta5d6ff"navigate" Tff7b72||
Te6edf3inputTb4b4b4.Te6edf3destination Tff7b72=== Ta5d6ff"document" Tff7b72||
Tb4b4b4(Tff7b72typeof Te6edf3inputTb4b4b4.Te6edf3accept Tff7b72=== Ta5d6ff"string" Tff7b72&& Te6edf3inputTb4b4b4.Te6edf3acceptTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"text/html"Tb4b4b4)Tb4b4b4) Tff7b72||
Te6edf3pathname Tff7b72=== Ta5d6ff"/" Tff7b72||
Te6edf3pathname Tff7b72=== Ta5d6ff"/index.html"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3navigateTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"navigation"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(
Te6edf3pathname Tff7b72=== Ta5d6ff"/boot-theme.js" Tff7b72||
Te6edf3pathname Tff7b72=== Ta5d6ff"/manifest.json" Tff7b72||
Te6edf3pathname Tff7b72=== Ta5d6ff"/favicons" Tff7b72||
Te6edf3pathnameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/favicons/"Tb4b4b4) Tff7b72||
Ta5d6ff/favicon/iTb4b4b4.Te6edf3testTb4b4b4(Te6edf3pathnameTb4b4b4)
Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"shell-helper"Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff"network-only"Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {string[]} cacheKeys
* @param {string} prefix
* @param {string} currentName
* @returns {string[]}
*/
Tff7b72function Te6edf3selectCachesToDeleteTb4b4b4(Te6edf3cacheKeysTb4b4b4, Te6edf3prefixTb4b4b4, Te6edf3currentNameTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3keys Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3cacheKeysTb4b4b4) Tff7b72? Te6edf3cacheKeys Tff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72return Te6edf3keysTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3keyTb4b4b4) Tb4b4b4=> Tff7b72typeof Te6edf3key Tff7b72=== Ta5d6ff"string" Tff7b72&& Te6edf3keyTb4b4b4.Te6edf3startsWithTb4b4b4(Te6edf3prefixTb4b4b4) Tff7b72&& Te6edf3key Tff7b72!== Te6edf3currentNameTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Iterable<string>} urls
* @returns {string[]}
*/
Tff7b72function Te6edf3findForbiddenCachedUrlsTb4b4b4(Te6edf3urlsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3leaked Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3raw Tff7b72of Te6edf3urls Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72let Te6edf3pathname Tff7b72= Tffa657StringTb4b4b4(Te6edf3raw Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3pathnameTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"://"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3pathname Tff7b72= Tff7b72new Te6edf3URLTb4b4b4(Te6edf3pathnameTb4b4b4)Tb4b4b4.Te6edf3pathnameTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// keep raw
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathname Tff7b72=== Ta5d6ff"/api" Tff7b72|| Te6edf3pathnameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/api/"Tb4b4b4) Tff7b72|| Te6edf3pathname Tff7b72=== Ta5d6ff"/ws" Tff7b72|| Te6edf3pathnameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/ws/"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3leakedTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3pathnameTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3leakedTb4b4b4;
Tb4b4b4}

T8b949e/**
* Create injectable shell cache strategies for the service worker (and tests).
* @param {{
* caches: CacheStorage,
* fetch: typeof fetch,
* cacheName: string,
* origin: string,
* shellFallbackUrl?: string,
* navTimeoutMs?: number,
* setTimeout?: typeof setTimeout,
* clearTimeout?: typeof clearTimeout,
* }} options
*/
Tff7b72function Te6edf3createShellRuntimeTb4b4b4(Te6edf3optionsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3cachesApi Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3cachesTb4b4b4;
Tff7b72const Te6edf3fetchFn Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3fetchTb4b4b4;
Tff7b72const Te6edf3cacheName Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3cacheNameTb4b4b4;
Tff7b72const Te6edf3origin Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3originTb4b4b4;
Tff7b72const Te6edf3shellFallbackUrl Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3shellFallbackUrl Tff7b72|| Te6edf3SHELL_FALLBACK_URLTb4b4b4;
Tff7b72const Te6edf3navTimeoutMs Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3navTimeoutMs Tff7b72?? Te6edf3NAV_NETWORK_TIMEOUT_MSTb4b4b4;
Tff7b72const Te6edf3setTimeoutFn Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3setTimeout Tff7b72|| Te6edf3setTimeoutTb4b4b4;
Tff7b72const Te6edf3clearTimeoutFn Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3clearTimeout Tff7b72|| Te6edf3clearTimeoutTb4b4b4;

Tff7b72async Tff7b72function Te6edf3putInCacheTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3responseTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3response Tff7b72|| Tff7b72!Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3cache Tff7b72= Tff7b72await Te6edf3cachesApiTb4b4b4.Te6edf3openTb4b4b4(Te6edf3cacheNameTb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3cacheTb4b4b4.Te6edf3putTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3responseTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3cacheShellSnapshotTb4b4b4(Te6edf3responseTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3response Tff7b72|| Tff7b72!Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3cache Tff7b72= Tff7b72await Te6edf3cachesApiTb4b4b4.Te6edf3openTb4b4b4(Te6edf3cacheNameTb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3cacheTb4b4b4.Te6edf3putTb4b4b4(Te6edf3shellFallbackUrlTb4b4b4, Te6edf3responseTb4b4b4.Te6edf3cloneTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3networkWithTimeoutTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3timeoutMsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3controller Tff7b72= Tff7b72new Te6edf3AbortControllerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3timer Tff7b72= Te6edf3setTimeoutFnTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3controllerTb4b4b4.Te6edf3abortTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3timeoutMsTb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72return Tff7b72await Te6edf3fetchFnTb4b4b4(Te6edf3requestTb4b4b4, Tb4b4b4{ Te6edf3signalTff7b72: Te6edf3controllerTb4b4b4.Te6edf3signal Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3clearTimeoutFnTb4b4b4(Te6edf3timerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3cacheFirstTb4b4b4(Te6edf3requestTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3cached Tff7b72= Tff7b72await Te6edf3cachesApiTb4b4b4.Te6edf3matchTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3cachedTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3cachedTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Te6edf3fetchFnTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3response Tff7b72&& Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3putInCacheTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3responseTb4b4b4.Te6edf3cloneTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3responseTb4b4b4;
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3staleWhileRevalidateTb4b4b4(Te6edf3requestTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3cache Tff7b72= Tff7b72await Te6edf3cachesApiTb4b4b4.Te6edf3openTb4b4b4(Te6edf3cacheNameTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3cached Tff7b72= Tff7b72await Te6edf3cacheTb4b4b4.Te6edf3matchTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3networkPromise Tff7b72= Te6edf3fetchFnTb4b4b4(Te6edf3requestTb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tb4b4b4(Te6edf3responseTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3response Tff7b72&& Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72void Te6edf3cacheTb4b4b4.Te6edf3putTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3responseTb4b4b4.Te6edf3cloneTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3responseTb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Tff7b72catchTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3cachedTb4b4b4) Tb4b4b4{
Tff7b72void Te6edf3networkPromiseTb4b4b4;
Tff7b72return Te6edf3cachedTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3networkResponse Tff7b72= Tff7b72await Te6edf3networkPromiseTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3networkResponseTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3networkResponseTb4b4b4;
Tb4b4b4}
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"shell helper unavailable"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3networkFirstNavigationTb4b4b4(Te6edf3eventLikeTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3request Tff7b72= Te6edf3eventLikeTb4b4b4.Te6edf3requestTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72let Te6edf3response Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3eventLikeTb4b4b4.Te6edf3preloadResponseTb4b4b4) Tb4b4b4{
Te6edf3response Tff7b72= Tff7b72await Te6edf3eventLikeTb4b4b4.Te6edf3preloadResponseTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3responseTb4b4b4) Tb4b4b4{
Te6edf3response Tff7b72= Tff7b72await Te6edf3networkWithTimeoutTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3navTimeoutMsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3response Tff7b72&& Te6edf3responseTb4b4b4.Te6edf3okTb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3cacheShellSnapshotTb4b4b4(Te6edf3responseTb4b4b4.Te6edf3cloneTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3responseTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// fall through to cache
Tb4b4b4}
Tff7b72const Te6edf3cached Tff7b72= Tb4b4b4(Tff7b72await Te6edf3cachesApiTb4b4b4.Te6edf3matchTb4b4b4(Te6edf3shellFallbackUrlTb4b4b4)Tb4b4b4) Tff7b72|| Tb4b4b4(Tff7b72await Te6edf3cachesApiTb4b4b4.Te6edf3matchTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3cachedTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3cachedTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3fetchFnTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72async Tff7b72function Te6edf3pruneOldShellCachesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3keys Tff7b72= Tff7b72await Te6edf3cachesApiTb4b4b4.Te6edf3keysTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3doomed Tff7b72= Te6edf3selectCachesToDeleteTb4b4b4(Te6edf3keysTb4b4b4, Te6edf3SHELL_CACHE_PREFIXTb4b4b4, Te6edf3cacheNameTb4b4b4)Tb4b4b4;
Tff7b72await Tffa657PromiseTb4b4b4.Te6edf3allTb4b4b4(Te6edf3doomedTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3keyTb4b4b4) Tb4b4b4=> Te6edf3cachesApiTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3doomedTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Request} request
* @param {{ preloadResponse?: Promise<Response|null> }} [eventExtras]
* @returns {Promise<Response>|null} null means network bypass (do not respondWith)
*/
Tff7b72function Te6edf3resolveFetchTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3eventExtras Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72let Te6edf3urlTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3url Tff7b72= Tff7b72new Te6edf3URLTb4b4b4(Te6edf3requestTb4b4b4.Te6edf3urlTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3urlTb4b4b4.Te6edf3origin Tff7b72!== Te6edf3originTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3kind Tff7b72= Te6edf3classifyShellRequestTb4b4b4(Te6edf3requestTb4b4b4, Te6edf3urlTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3kind Tff7b72=== Ta5d6ff"bypass" Tff7b72|| Te6edf3kind Tff7b72=== Ta5d6ff"network-only"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3kind Tff7b72=== Ta5d6ff"asset"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3cacheFirstTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3kind Tff7b72=== Ta5d6ff"shell-helper"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3staleWhileRevalidateTb4b4b4(Te6edf3requestTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3kind Tff7b72=== Ta5d6ff"navigation"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3networkFirstNavigationTb4b4b4(Tb4b4b4{ Te6edf3requestTb4b4b4, Te6edf3preloadResponseTff7b72: Te6edf3eventExtrasTb4b4b4.Te6edf3preloadResponse Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}

Tff7b72return Tb4b4b4{
Te6edf3cacheFirstTb4b4b4,
Te6edf3staleWhileRevalidateTb4b4b4,
Te6edf3networkFirstNavigationTb4b4b4,
Te6edf3pruneOldShellCachesTb4b4b4,
Te6edf3putInCacheTb4b4b4,
Te6edf3cacheShellSnapshotTb4b4b4,
Te6edf3resolveFetchTb4b4b4,
Te6edf3cacheNameTb4b4b4,
Te6edf3shellFallbackUrlTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e// SPDX-License-Identifier: 0BSD
T8b949e/* global ["/","/boot-theme.js","/manifest.json","/favicons/favicon-512x512.png"], cacheNameForBuild, createShellRuntime, SHELL_FALLBACK_URL, NAV_NETWORK_TIMEOUT_MS, UPDATE_MESSAGE_TYPE */
T8b949e/**
* MeshChatX app-shell service worker bootstrap.
* Preceded at build time by inlined swCachePolicy.js + swShellRuntime.js.
* Placeholders dev and ["/","/boot-theme.js","/manifest.json","/favicons/favicon-512x512.png"] are replaced.
*/

Tff7b72const Te6edf3BUILD_ID Tff7b72= Ta5d6ff"dev"Tb4b4b4;
Tff7b72const Te6edf3PRECACHE_URLS Tff7b72= Tb4b4b4[Ta5d6ff"/"Tb4b4b4,Ta5d6ff"/boot-theme.js"Tb4b4b4,Ta5d6ff"/manifest.json"Tb4b4b4,Ta5d6ff"/favicons/favicon-512x512.png"Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3CACHE_NAME Tff7b72= Te6edf3cacheNameForBuildTb4b4b4(Te6edf3BUILD_IDTb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3runtime Tff7b72= Te6edf3createShellRuntimeTb4b4b4(Tb4b4b4{
Te6edf3cachesTff7b72: Te6edf3selfTb4b4b4.Te6edf3cachesTb4b4b4,
Te6edf3fetchTff7b72: Tb4b4b4(Tb4b4b4...Te6edf3argsTb4b4b4) Tb4b4b4=> Te6edf3selfTb4b4b4.Te6edf3fetchTb4b4b4(Tb4b4b4...Te6edf3argsTb4b4b4)Tb4b4b4,
Te6edf3cacheNameTff7b72: Te6edf3CACHE_NAMETb4b4b4,
Te6edf3originTff7b72: Te6edf3selfTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3originTb4b4b4,
Te6edf3shellFallbackUrlTff7b72: Te6edf3SHELL_FALLBACK_URLTb4b4b4,
Te6edf3navTimeoutMsTff7b72: Te6edf3NAV_NETWORK_TIMEOUT_MSTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3selfTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"install"Tb4b4b4, Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3eventTb4b4b4.Te6edf3waitUntilTb4b4b4(
Tb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3cache Tff7b72= Tff7b72await Te6edf3selfTb4b4b4.Te6edf3cachesTb4b4b4.Te6edf3openTb4b4b4(Te6edf3CACHE_NAMETb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3urls Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3PRECACHE_URLSTb4b4b4) Tff7b72? Te6edf3PRECACHE_URLS Tff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3url Tff7b72of Te6edf3urlsTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Te6edf3cacheTb4b4b4.Te6edf3addTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// Skip missing optional assets during install
Tb4b4b4}
Tb4b4b4}
Tff7b72await Te6edf3selfTb4b4b4.Te6edf3skipWaitingTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4(Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3selfTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"activate"Tb4b4b4, Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3eventTb4b4b4.Te6edf3waitUntilTb4b4b4(
Tb4b4b4(Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3selfTb4b4b4.Te6edf3registration Tff7b72&& Te6edf3selfTb4b4b4.Te6edf3registrationTb4b4b4.Te6edf3navigationPreloadTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Te6edf3selfTb4b4b4.Te6edf3registrationTb4b4b4.Te6edf3navigationPreloadTb4b4b4.Te6edf3enableTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// navigation preload unsupported or denied
Tb4b4b4}
Tb4b4b4}
Tff7b72await Te6edf3runtimeTb4b4b4.Te6edf3pruneOldShellCachesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3selfTb4b4b4.Te6edf3clientsTb4b4b4.Te6edf3claimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3clients Tff7b72= Tff7b72await Te6edf3selfTb4b4b4.Te6edf3clientsTb4b4b4.Te6edf3matchAllTb4b4b4(Tb4b4b4{ Te6edf3typeTff7b72: Ta5d6ff"window"Tb4b4b4, Te6edf3includeUncontrolledTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3client Tff7b72of Te6edf3clientsTb4b4b4) Tb4b4b4{
Te6edf3clientTb4b4b4.Te6edf3postMessageTb4b4b4(Tb4b4b4{ Te6edf3typeTff7b72: Te6edf3UPDATE_MESSAGE_TYPETb4b4b4, Te6edf3buildIdTff7b72: Te6edf3BUILD_ID Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4(Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3selfTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"message"Tb4b4b4, Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3data Tff7b72= Te6edf3eventTb4b4b4.Te6edf3dataTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3data Tff7b72|| Tff7b72typeof Te6edf3data Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"meshchatx-sw-skip-waiting"Tb4b4b4) Tb4b4b4{
Tff7b72void Te6edf3selfTb4b4b4.Te6edf3skipWaitingTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Te6edf3selfTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"fetch"Tb4b4b4, Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3handled Tff7b72= Te6edf3runtimeTb4b4b4.Te6edf3resolveFetchTb4b4b4(Te6edf3eventTb4b4b4.Te6edf3requestTb4b4b4, Tb4b4b4{
Te6edf3preloadResponseTff7b72: Te6edf3eventTb4b4b4.Te6edf3preloadResponseTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3handledTb4b4b4) Tb4b4b4{
Te6edf3eventTb4b4b4.Te6edf3respondWithTb4b4b4(Te6edf3handledTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────